package com.project.service;

import com.project.bean.ShopCarBean;

import java.util.List;

/**
 * 购物车业务接口
 *
 * @author lyl
 */
public interface IShopCarService {

    /**
     * 将商品添加到购物车
     * 首先判断该购物车对象是否存在于数据库
     * 如果有则直接在购物车对象钟的数量+1（修改操作
     * 如果没有，则添加购物车对象，商品数量则默认为1（添加操作
     *
     * @param productId 商品id
     * @param userId    用户id
     */
    void add(int productId, int userId);

    /**
     * 根据商品id，用户id从购物车移除
     *
     * @param userId    用户id
     * @param productId 商品id
     */
    void delProductFromShopCar(int productId, int userId);

    /**
     * 前端做onblur失去焦点事件进行触发
     * 按购物车id修改商品数量
     *
     * @param shopCarId 购物车id
     * @param num       该商品新的数量
     */
    void updateProductNum(int shopCarId, int num);

    /**
     * 根据用户id查询购物车集合
     * 同时需要连表查询查询出购物车商品
     *
     * @param userId 用户id
     * @return 购物车集合
     */
    List<ShopCarBean> findAllByUserId(int userId);

//    /**
//     * 计算当前用户下购物车商品的总价格，需要进行连表计算
//     *
//     * @param userId 用户id
//     * @return
//     */
//    int countAllPrice(int userId);

}
